<?php


namespace Site\AdminBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Site\ProjetBundle\Entity\Projet;
use Site\UtilisateurBundle\Entity\Utilisateur;
use Site\AdminBundle\Mail\Mail;
class DefaultController extends Controller
{
    public function indexAction($name)
    {
        return $this->render('SiteAdminBundle:Default:index.html.twig', array('name' => $name));
    }
	 
    public function phaseAction($ue)
    {
	//affichage de l'ue dans l'url (pour savoir a qui les mails seront envoyes)
	if (!$ue)
	  return $this->redirect($this->generateUrl("projet_site_phase", array('ue' => 'l2')));
		$request = $this->getRequest();
		$flash = "";
		$alerte = "";
		$afficher = false;
		//si on a active une des phases automatiques
		if( $request->getMethod() == 'POST' )
		{
	           //si c'est pour envoyer un mail
	           if($request->request->get('mailRechercheTuteur') OR 
                  $request->request->get('mailAvertirEtudiant')OR $request->request->get('mailAvertirPourVoeux')
	         OR $request->request->get('mailDemarrerProjet')OR $request->request->get('mailCahierDesCharges') OR $request->request->get('mailTuteurSoutenance'))
			{
				//Gestion des Ue pour modifier le mail en consequence
				$ue=$request->query->get('ue');
				if($ue=='l2')
				{
					$ueNom="Projet Info. L2";
				}
				else if($ue=='l3')
				{
					$ueNom="Projet Info. l3";
				}
				else
				{
					$ueNom="Projet Info.";
				}
				//on recupere le service de mail
				$mailer = $this->container->get('mailer');
				// Creation de l'e-mail
				$message = \Swift_Message::newInstance()
				->setFrom('Michel.Meynard@univ-montp2.fr');
				//le mail pour les tuteurs
				if($request->request->get('mailRechercheTuteur'))
				{
					$message->setTo('ens-info@lirmm.fr','ensperminfofds@listes.univ-montp2.fr'); //a remplacer par la liste des tuteurs
					$message->setSubject('recherche tuteurs de '. $ueNom .' au second semestre (3 hetd par etudiant encadre)');
					$message->setBody($this->renderView('SiteAdminBundle:Mail:mailRechercheTuteur.html.twig',array('ueNom'=>$ueNom,'ue'=>$ue)));
				}
				//le mail pour avertir les etudiants que l'UE va commencer
				else if($request->request->get('mailAvertirEtudiant'))
				{
					$message->setTo($ue.'?cc=ens-info@lirmm.fr'); //a remplacer par la liste des etudiants
					$message->setSubject('Debut du '.$ueNom.' au second semestre');
					$message->setBody($this->renderView('SiteAdminBundle:Mail:mailAvertirEtudiant.html.twig',array('ueNom'=>$ueNom,'ue'=>$ue)));
				}
				//le mail pour avertir les etudiants qu'ils peuvent choisir leurs voeux
				else if($request->request->get('mailAvertirPourVoeux'))
				{
					$message->setTo($ue.'?cc=ens-info@lirmm.fr'); //a remplacer par la liste des etudiants
					$message->setSubject($ueNom.' : faites vos voeux !');
					$message->setBody($this->renderView('SiteAdminBundle:Mail:mailAvertirPourVoeux.html.twig',array('ueNom'=>$ueNom,'ue'=>$ue)));
				}
				//mail pour indiquer aux etudiants qu'il faut demarrer le projet
				else if($request->request->get('mailDemarrerProjet'))
				{
					$message->setTo($ue.'?cc=ens-info@lirmm.fr'); //a remplacer par la liste des etudiants
					$message->setSubject($ueNom.' : demarrez le projet !');
					$message->setBody($this->renderView('SiteAdminBundle:Mail:mailDemarrerProjet.html.twig',array('ueNom'=>$ueNom,'ue'=>$ue)));
				}
				//le mail pour le cahier des charges
				else if($request->request->get('mailCahierDesCharges'))
				{
					$message->setTo($ue.'?cc=ens-info@lirmm.fr'); //a remplacer par la liste des etudiants
					$message->setSubject($ueNom.' : cahier des charges !');
					$message->setBody($this->renderView('SiteAdminBundle:Mail:mailCahierDesCharges.html.twig',array('ueNom'=>$ueNom,'ue'=>$ue)));
				}
				//le mail aux tuteurs pour les soutenances
				else if($request->request->get('mailTuteurSoutenance'))
				{
					$message->setTo('ens-info@lirmm.fr','ens-info@info-ufr.univ-montp2.fr'); //a remplacer par la liste des tuteurs
					$message->setSubject('soutenances de '.$ueNom);
					$message->setBody($this->renderView('SiteAdminBundle:Mail:mailTuteurSoutenance.html.twig',array('ueNom'=>$ueNom,'ue'=>$ue)));
				}

				//envoie du mail
				$mailer->send($message);
				$flash = "Le mail a ete envoye !";
				$afficher = true;
				$alerte = "success";


			}
			//sinon si on veut supprimer les etudiants
			elseif ($request->request->get('supprEtudiants'))
			{
				$nbLigneSupprimees = $this->nettoyerEtud();

				$flash = "Les etudiants et leurs choix ont ete supprime ! ( $nbLigneSupprimees ) ";

				if($nbLigneSupprimees==0)
					$alerte = "info";
				else
					$alerte = "success";

				$afficher = true; // Variable boolean qui sert a gerer l'affichage (ou non) du message flash
			}



		}
		//url pour renvoyer le formulaire
		$urlFormulaire=$request->server->get('REQUEST_URI');
		return $this->render('SiteAdminBundle:Gestion:gererPhase.html.twig',array('urlFormulaire'=>$urlFormulaire,
																					'flash' => $flash,
																					'alerte' => $alerte,
																					'afficher' => $afficher
																				));
    }


    public function trombiAction()
       {

         /* if ($request->getMethod()=='POST')
         {*/
           
          
           $projet=$request->query->get('id');//recuperer l'id du projet
           //chercher dans la bdd la liste de tout les etudiants avec repositories
            $repository = $this->getDoctrine()
                               ->getManager()
                               ->getRepository('SiteAdminBundle:Projet');

           $projetentite=$repository->findOneById($projet);
           if ($projetentite)
           {
                $listeetudiants=$projetentite->getEtudiants();

                return $this->render('SiteAdminBundle:Default:trombi.html.twig', array('listeetudiants' => $listeetudiants));
           }
           else {throw $this->createNotFoundException('Projet inexistant (projet = '.$projet.')');}
          /*}F
          else return $this->render('SiteAdminBundle:Default:trombiVide.html.twig',array( 'message'=> $message));*/
         }

 		
 		private function nettoyerEtud()
		{

			$repository = $this->getDoctrine()->getManager()->getRepository('SiteUtilisateurBundle:Utilisateur');

			 return $repository->nettoyerBDDEtudiant(); //Retourne le nombre de ligne supprimees

		}


  public function mailTousTuteursAction()
{
	 $request = $this->get('request');

   if ($request->getMethod()=='POST')
   {
	$ue=$request->query->get('id');
     $projet=$this->getDoctrine()
                  ->getManager()
                  ->getRepository('SiteProjetBundle:Projet');
     //liste des projets
     //$listeprojet=$projet->findBy(array('id'=>$ue));//critere : ue demandee

     $message = \Swift_Message::newInstance()
        ->setSubject($request->request->get('objet'))
        ->setFrom('testenvoimail01@gmail.com')
        ->setBody($request->request->get('corps'))
        ->setTo('testenvoimail01@gmail.com');

     //creation et ajout du mail
     /*foreach ($listeprojet as $p)
     {
        $listeUtilisateurs=$p->getUtilisateurs();
        foreach ( $listeUtilisateurs as $utilisateur)
        {
          if ($utilisateur->getType()== 't')
          {
             $nom=$utilisateur->getNom();
             $prenom=$utilisateur->getPrenom();
             $message->addTo($prenom+'.'+$nom+'@lirmm.fr');
          }
        }
      }*/

     $this->get('mailer')->send($message);

     return $this->render('SiteAdminBundle:Default:mailTousTuteursEnvoye.html.twig', array('messag'=>'Votre message a bien ete envoye'));
    }

    else {

			   $mail=new Mail();

		   //creation du formulaire
		   $formbuilder=$this->createFormBuilder($mail);
		   $formbuilder->add('objet','text',array('required' => false))
					   ->add('fichier','file',array('required' => false))
					   ->add('corps','textarea');


		   $form=$formbuilder->getForm();

            return $this->render('SiteAdminBundle:Default:mailTousTuteurs.html.twig', array('form'=> $form->createView()));
         }
}


}
